package br.unifor.ed.tads;

import br.unifor.ed.exceptions.InvalidPositionException;
import br.unifor.ed.exceptions.ListEmptyException;
import br.unifor.ed.exceptions.ListFullException;

public interface MyGenericList<E> {
	public boolean isEmpty ();
	public boolean isFull ();

	public E get ( int position ) throws ListEmptyException, InvalidPositionException;
	public int size ();
	public void print () throws ListEmptyException;

	public void addFirst ( E newData ) throws ListFullException;
	public void addLast(E newData ) throws ListFullException;
	public void addAt ( int position, E newData  ) throws ListFullException, InvalidPositionException;

	public E removeFirst () throws ListEmptyException;
	public E removeLast () throws ListEmptyException;
	public E removeAt ( int position ) throws ListEmptyException, InvalidPositionException;

}
